package com.zmn.oms.common.constant;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.zmn.common.constant.GateTypeConsts;
import com.zmn.common.constant.GlobalConsts;
import com.zmn.common.dictionary.DictModel;
import com.zmn.common.utils.number.NumberUtil;
import com.zmn.common.utils.string.StringUtil;
import com.zmn.pay.common.constant.PayConsts;

import java.util.*;

/**
 * 类描述：订单/工单相关常量定义，类型/状态/其他
 *
 * @author xiangyang
 * @date 2018/11/02 10:22
 */
public class  OrderConsts {

    public static final String AUTH_INFO = "00ce888f4fbf11e5ae4a000c29b817de";

    /**
     * 品质保障部ID
     */
    public static final int QUALITY_CONTROL_DEPARTMENT_DEPT_ID = 2017;

    /**
     * 客服中心部门id
     */
    public static final int CUSTOMER_CENTER_DEPT_ID = 1010;

    /**
     * 订单运营部门id
     */
    public static final int ORDER_OPERATE_DEPT_ID = 2043;

    /**
     * 新 品质保障部ID
     */
    public static final int QUALITY_CONTROL_DEPARTMENT_DEPT_ID_NEW = 4877;

    /**
     * 渠道订单创建订单时，没有用户手机号码，临时使用的假号码
     */
    public static final String CHANNEL_TEMP_MOBILE = "12345678912";

    /**
     * 起始收费公里数
     */
    public final static double START_TOLL_KM = 15D;

    /**
     * 每公里收费金额，单位元
     */
    public final static double PER_AMOUNT = 1.5D;


    /**
     * 预约时间
     */
    public static final String ORDER_SCHE_NONE_TIMES = "000000000000000000000000000000000000000000000000"; // 全不可用
    public static final String ORDER_SCHE_ALL_TIMES = "111111111111111111111111111111111111111111111111"; // 全可用

    /**
     * 预约时间 - 96位
     */
    public static final String ORDER_SCHE_NONE_TIMES_96 = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; // 全不可用
    public static final String ORDER_SCHE_ALL_TIMES_96 = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; // 全可用

    /**
     * 是否
     */
    public static final String YES_MSG = "是";
    public static final String NO_MSG = "否";

    /**
     * 订单/工单类型
     * 1 新单、2 返修单、3 退款单
     */
    public final static int ORDER_TYPE_NEW = 1; // 新单
    public final static int ORDER_TYPE_REWORK = 2; // 返修单
    public final static int ORDER_TYPE_REFUND = 3; // 退款单
    public final static int ORDER_TYPE_COMPENSATE = 4; // 赔偿单

    /**
     * 工单优惠类型
     * 1 普通优惠、2 次卡优惠
     */
    public final static int ORDER_BASE_DISCOUNT_TYPE_NORMAL = 1; // 普通优惠/无优惠
    public final static int ORDER_BASE_DISCOUNT_TYPE_TIMES = 2; // 次卡优惠

    // 1：地址库 2：百度 3:手动街道
    public final static int STREET_SOURCE_NONE = 0;
    public final static int STREET_SOURCE_AWS = 1;
    public final static int STREET_SOURCE_BAIDU = 2;
    public final static int STREET_SOURCE_DEFAULT = 3;

    /**
     * 订单保修卡类型
     */
    public final static int ORDER_WARRANTY_TYPE_RECEIPT = 1; // 收据
    public final static int ORDER_WARRANTY_TYPE_CARD = 2; // 保修卡

    /**
     * 订单保修卡状态
     */
    public final static int ORDER_WARRANTY_STATUS_INACTIVATED = 1; // 无效 未激活
    public final static int ORDER_WARRANTY_STATUS_VALID = 2; // 有效
    public final static int ORDER_WARRANTY_STATUS_INVALID = 3; // 失效

    /**
     * 工单工程师类型
     */
    public final static int ORDER_MASTER_TYPE_MAIN = 1; // 主工程师
    public final static int ORDER_MASTER_TYPE_SLAVE = 2; // 从工程师

    /**
     * 订单录入方式
     */
    public final static int ORDER_INPUT_TYPE_MANUAL = 1; // 人工
    public final static int ORDER_INPUT_TYPE_H5 = 2; // H5
    public final static int ORDER_INPUT_TYPE_API = 3; // 接口
    public final static int ORDER_INPUT_TYPE_SYNC_MANUAL_ALL = 4; // 主动同步人工录入的订单，包括新单和状态变更
    public final static int ORDER_INPUT_TYPE_SYNC_MANUAL_NEW = 5; // 主动同步人工录入的订单，只同步新单，状态变更不同步
    public final static int ORDER_INPUT_TYPE_SYNC_H5_ALL = 6; // 主动同步H5订单，包括新单和状态变更
    public final static int ORDER_INPUT_TYPE_SYNC_H5_NEW = 7; // 主动同步H5订单，只同步新单，状态变更不同步

    /**
     * 订单来源类型
     */
    public final static int ORDER_SOURCE_TYPE_NORMAL = 1; // 普通
    public final static int ORDER_SOURCE_TYPE_FACTORY = 2; // 厂商
    public final static int ORDER_SOURCE_TYPE_BCUSTOMER = 3; // 大客户
    public final static int ORDER_SOURCE_TYPE_MEMBER = 4; // 会员

    /**
     * 跟单状态
     */
    public final static int ORDER_TRACK_STATUS_NONE = 1; // 无
    public final static int ORDER_TRACK_STATUS_DOING = 2; // 进行中
    public final static int ORDER_TRACK_STATUS_DONE = 3; // 结束

    /**
     * 配件类型
     */
    public final static int PART_TYPE_SOURCING_IN = 1; // 内采
    public final static int PART_TYPE_SOURCING_OUT = 2; // 外报
    public final static int PART_TYPE_DELIVER = 3; // 订单杂项费用
    public final static int PART_TYPE_FACTORY = 4; // 厂商

    /**
     * 运杂类型
     */
    public final static int PART_DELIVER_TYPE_ORDER = 1; // 订单运杂
    public final static int PART_DELIVER_TYPE_PEOPLE = 2; // 人人
    public final static int PART_DELIVER_TYPE_CAR_SUBSIDY = 3; // 车补贴
    public final static int PART_DELIVER_TYPE_OIL_COST = 4; // 油费

    /**
     * 厂商配件类型
     */
    public final static int FC_PART_TYPE_FACTORY = 1; // 厂商配件
    public final static int FC_PART_TYPE_SELF = 2; // 自购配件

    /**
     * 配件报销状态 1.无需报销、2.待报销、3.报销成功、4.报销失败 5.不予报销
     */
    public final static int PART_REIMBURSE_STATUS_NONE = 1;
    public final static int PART_REIMBURSE_STATUS_DOING = 2;
    public final static int PART_REIMBURSE_STATUS_SUCCESS = 3;
    public final static int PART_REIMBURSE_STATUS_FAIL = 4;
    public final static int PART_REIMBURSE_STATUS_NO = 5;

    /**
     * 意向单操作类型
     */
    public final static int ORDER_PURPOSE_OP_TYPE_SALE = 11;   //售卖
    public final static int ORDER_PURPOSE_OP_TYPE_CREATE = 12; //下单

    /**
     * 订单服务型类型
     */
    public final static int SERVICE_ITEM_TYPE_ORDER = 1; // 工单服务项
    public final static int SERVICE_ITEM_TYPE_FAULT = 2; // 故障服务项-计价器
    public final static int SERVICE_ITEM_TYPE_ADVANCE_PAY = 3; // 提前付
    public final static int SERVICE_ITEM_TYPE_QUOTATION_THREE = 4; // 计价器3.0
    public final static int SERVICE_ITEM_TYPE_FINAL_PRICE = 5; // 一口价（目前不做设值）

    /**
     * 分派方式
     */
    public final static int ORDER_GRAB_TYPE_NONE = 0; // 默认（指派）
    public final static int ORDER_GRAB_TYPE_DISTRIBUTE = 1; // 指派
    public final static int ORDER_GRAB_TYPE_GRAB = 2; // 抢单类型

    /**
     * 下单方式
     * 1 人工录入 2 接口
     */
    public final static int RECEIVE_MANNER_MANUAL = 1;
    public final static int RECEIVE_MANNER_API = 2;

    /**
     * 报价人类型  1 系统 2员工 3 师傅 4 用户 5 厂商 6 服务商 7 大客户 8渠道 0其他
     */
    public final static int ORDER_QUOTATION_TYPE_OTHER =0;

    public final static int ORDER_OP_TYPE_INPUT = 1; // 下单
    public final static int ORDER_OP_TYPE_CONFIRM = 2; // 确认
    public final static int ORDER_OP_TYPE_ASSIGN = 3; // 分单
    public final static int ORDER_OP_TYPE_DISTRIBUTE = 4; // 派单
    public final static int ORDER_OP_TYPE_DISTRIBUTE_NEW = 17; // 派单（新）
    public final static int ORDER_OP_TYPE_TAKE = 5; // 领单
    public final static int ORDER_OP_TYPE_VISIT = 6; // 上门
    public final static int ORDER_OP_TYPE_COMPLETE = 7; // 完成
    public final static int ORDER_OP_TYPE_CHECKOUT = 8; // 收单 - 子公司角色
    public final static int ORDER_OP_TYPE_ACCOUNT = 9; // 算账 - 子公司角色
    public final static int ORDER_OP_TYPE_FAIL = 11; // 失败
    public final static int ORDER_OP_TYPE_DISCARD = 12; // 弃单
    public final static int ORDER_OP_TYPE_REPLY_VISIT = 13; // 回访
    public final static int ORDER_OP_TYPE_ADMIN_CHECKOUT = 14; // 收单 - 子公司老总&总部角色
    public final static int ORDER_OP_TYPE_ADMIN_ACCOUNT = 15; // 算账 - 子公司老总&总部角色
    public final static int ORDER_OP_TYPE_CANCEL = 16; // 取消
    public final static int ORDER_OP_TYPE_COPY = 101; // 复制
    public final static int ORDER_OP_TYPE_REWORK = 102; // 返修
    public final static int ORDER_OP_TYPE_DETAIL = 103; // 详情
    public final static int ORDER_OP_TYPE_REMARK = 104; // 备注

    public final static int ORDER_OP_TYPE_MASTER_SHARING = 120; // 多工程师分润

    public final static int ORDER_OP_TYPE_ASSIGN_BACK = 105; // 分单撤回
    public final static int ORDER_OP_TYPE_AMOUNT_REVIEW = 18; // 价格审核
    public final static int ORDER_OP_TYPE_OLD_PART_POST = 19; // 邮寄旧件 （服务商往厂商邮寄换下来的旧配件）
    public final static int ORDER_OP_TYPE_OLD_PART_TO_FACTORY = 20; // 旧件返厂 （厂商指定换下来的配件要不要返厂）
    public final static int ORDER_OP_TYPE_PART_POST = 21; // 邮寄配件 （厂商给服务商或者用户邮寄配件）
    public final static int ORDER_OP_TYPE_PART_BACK = 22; // 配件撤回 （删除没有物流信息的厂商配件）

    public final static int ORDER_OP_TYPE_DISTRIBUTE_BACK = 23; // 派单撤回
    public final static int ORDER_OP_TYPE_PART_REVIEW = 24; // 配件审核
    public final static int ORDER_OP_TYPE_TURN = 25; // 转单
    public final static int ORDER_OP_TYPE_ORDER_PHOTO = 26; // 操作工单照片
    public final static int ORDER_OP_TYPE_SUSPEND = 27; // 挂起
    public final static int ORDER_OP_TYPE_SERVICE_COMPLETE = 28; // 服务完成
    public final static int ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW = 32; // 服务审核

    public final static int ORDER_OP_TYPE_MASTER_REMARK = 106; // 工程师备注
    public final static int ORDER_OP_TYPE_MULTI_MASTER = 107; // 多工程师
    public final static int ORDER_OP_TYPE_TEST = 108; // 测试单
    public final static int ORDER_OP_TYPE_DUPLICATE = 109; // 重复单
    public final static int ORDER_OP_TYPE_RECORDING = 110; // 录音
    public final static int ORDER_OP_TYPE_MULTIPLE_VISIT = 111; // 多次上门
    public final static int ORDER_OP_TYPE_UPDATE = 201; // 修改
    public final static int ORDER_OP_TYPE_UPDATE_CHANNEL = 202; // 改渠道
    public final static int ORDER_OP_TYPE_UPDATE_APPLIQUE = 203; // 改贴花
//    public final static int ORDER_OP_TYPE_UPDATE_STATUS = 204; // 改状态
    public final static int ORDER_OP_TYPE_UPDATE_PRICE = 205; // 改定金
    public final static int ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT = 206; // 改预付款
//    public final static int ORDER_OP_TYPE_UPDATE_CHANNEL_AMOUNT = 207; // 改渠道费
    public final static int ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE = 209; // 优惠 六折
//    public final static int ORDER_OP_TYPE_DISCOUNT_LEVEL_TWO = 210; // 优惠 七折
//    public final static int ORDER_OP_TYPE_DISCOUNT_LEVEL_THREE = 211; // 优惠 九折
//    public final static int ORDER_OP_TYPE_ADMIN_UPDATE_CHANNEL_PREPAY_AMOUNT = 212; // 总部改渠道预收
    public final static int ORDER_OP_TYPE_DISCOUNT_COUPON = 213; // 优惠券
    public final static int ORDER_OP_TYPE_DISCOUNT_FREE = 214; // 特殊优惠

    public final static int ORDER_OP_TYPE_SERVICE_ITEM = 301; // 改价格
    public final static int ORDER_OP_TYPE_PART = 302; // 核配件
    public final static int ORDER_OP_TYPE_WARRANTY = 303; // 保修信息
    public final static int ORDER_OP_TYPE_PART_REIMBURSE = 401; // 配件报销
    public final static int ORDER_OP_TYPE_INVOICE = 402; // 开发票
    public final static int ORDER_OP_TYPE_INVOICE_FEED_BACK = 406; // 发票反馈
    public final static int ORDER_OP_TYPE_INVOICE_REMIND = 404; // 推送开票
    public final static int ORDER_OP_TYPE_REFUND = 403; // 退款单
    public final static int ORDER_OP_TYPE_SPECIAL_ADJUSTMENT = 450; // 特殊调整
//    public final static int ORDER_OP_TYPE_TRACK = 501; // 跟单
    public final static int ORDER_OP_TYPE_TRACK_NEW = 505; // 跟单（新）
    public final static int ORDER_OP_TYPE_COMPLAINT = 502; // 投诉
    public final static int ORDER_OP_TYPE_ABNORMAL = 503; // 服务异常
    public final static int ORDER_OP_TYPE_COMMENT_REMARK = 504; // 评价备注
    public final static int ORDER_OP_TYPE_MEM_MASTER_REVIEW = 701; // 会员单工程师审核
    public final static int ORDER_OP_TYPE_MEM_PLAT_REVIEW = 702; // 会员单后台审核
    public final static int ORDER_OP_TYPE__MASTER_RETENTION = 705;// 工程师提成
    public final static int ORDER_OP_TYPE_SIGN_IN = 708;// 签到
    public final static int ORDER_OP_TYPE_CALL_LOG = 709;// 通话记录
    public final static int ORDER_OP_TYPE_UPDATE_ADDRESS = 710; // 修改地址
    public final static int ORDER_OP_TYPE_MODIFY_DUTY_TIME = 711;// 修改预约时间
    public final static int ORDER_OP_TYPE_NONSTANDARD = 712;// 非标信息
    public final static int ORDER_OP_TYPE_EXPRESS = 713;// 快递物流
    public final static int ORDER_OP_TYPE_NEW_MACHINE_PART = 714; // 新机配件信息
    public final static int ORDER_OP_TYPE_MANDATORY_DISTRIBUTE = 715; // 强制派单
    public final static int ORDER_OP_TYPE_REFUND_VOUCHER = 716; // 退款凭证
    public final static int ORDER_OP_TYPE_REFUND_VOUCHER_DELETE_IMAGE = 717; // 退款凭证删除image
    public final static int ORDER_OP_TYPE_REMINDER = 719; // 一键提醒
    public final static int ORDER_OP_TYPE_CHANGE_ASSIGNMENT = 720; // 更改分配720
    public final static int ORDER_OP_TYPE_COMPENSATE = 721; // 赔偿单721
    public final static int ORDER_OP_TYPE_COMPENSATE_UPDATE = 722; // 赔偿单修改722
    public final static int ORDER_OP_TYPE_COMPENSATE_REVIEW = 723; // 赔偿单审核723
    public final static int ORDER_OP_TYPE_REMIT_VOUCHER = 724; // 打款凭证724
    public final static int ORDER_OP_TYPE_ORDER_CHECK = 725; // 抽查725
    public final static int ORDER_OP_TYPE_ORDER_TEMP_XNO = 726; // 临时小号726

    public final static int ORDER_OP_TYPE_ORDER_TAG = 800; // 标记

    public final static int ORDER_OP_TYPE_MODIFY_PRODUCT = 901; // 修改产品
    public final static int ORDER_OP_TYPE_MODIFY_QUOTATION = 902; // 修改订单报价

    /**
     * 有权限操作赔偿单的 操作类型 compensate
     */
    public final static Set<Integer> COMPENSATE_ORDER_OP_TYPES = Sets.newHashSet(
            ORDER_OP_TYPE_DETAIL,               // 详情
            ORDER_OP_TYPE_UPDATE,               // 修改
            ORDER_OP_TYPE_REPLY_VISIT,          // 回访
            ORDER_OP_TYPE_ABNORMAL,             // 服务异常
            ORDER_OP_TYPE_COMPLAINT,            // 投诉
            ORDER_OP_TYPE_REMARK,               // 备注
            ORDER_OP_TYPE_TRACK_NEW,            // 跟单
            ORDER_OP_TYPE_SUSPEND,              // 挂起
            ORDER_OP_TYPE_CALL_LOG,             // 通话记录
            ORDER_OP_TYPE_CHECKOUT,             // 收单
            ORDER_OP_TYPE_ADMIN_CHECKOUT,       // 收单
            ORDER_OP_TYPE_ACCOUNT,              // 算账
            ORDER_OP_TYPE_REMIT_VOUCHER,        // 赔偿上传凭证
            ORDER_OP_TYPE_COMPENSATE_REVIEW,    // 赔偿单审批
            ORDER_OP_TYPE_ORDER_CHECK,          // 抽查
            ORDER_OP_TYPE_CANCEL                // 取消
    );

    // 退差额 禁用操作
    public final static Set<Integer> ORDER_OP_REFUND_DIFFERENCE_DISABLE_TYPES = Sets.newHashSet(
            ORDER_OP_TYPE_UPDATE,               // 修改
            ORDER_OP_TYPE_ASSIGN,               // 分单
            ORDER_OP_TYPE_DISTRIBUTE,           // 派单
            ORDER_OP_TYPE_DISTRIBUTE_NEW,           // 派单（新）
            ORDER_OP_TYPE_ASSIGN_BACK,          // 分单撤回
            ORDER_OP_TYPE_DISTRIBUTE_BACK,      // 派单撤回
            ORDER_OP_TYPE_SERVICE_ITEM,         // 改价格
            ORDER_OP_TYPE_COMPLETE,             // 完成
            ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE,   // 优惠 六折
            ORDER_OP_TYPE_DISCOUNT_FREE,        // 特殊优惠
            ORDER_OP_TYPE_MODIFY_PRODUCT,       // 修改产品
            ORDER_OP_TYPE_MODIFY_QUOTATION      // 修改订单报价
    );

    /**
     * 自动流转的操作节点类型
     */
    public final static List<Integer> AUTO_FLOW_OP_TYPES = Arrays.asList(
            ORDER_OP_TYPE_CONFIRM,          // 确认
            ORDER_OP_TYPE_ASSIGN,           // 分单
            ORDER_OP_TYPE_DISTRIBUTE,       // 派单
            ORDER_OP_TYPE_DISTRIBUTE_NEW,   // 派单（新）
            ORDER_OP_TYPE_COMPLETE,         // 完成
            ORDER_OP_TYPE_CHECKOUT          // 收单
    );

    /**
     * 工程师加单渠道
     */
    public final static List<Integer> ENGINEER_RECOMMEND_CHANNEL_LIST = Lists.newArrayList(
            OrderConsts.CHANNEL_ID_MASTER_RECOMMEND_A, // 啄木鸟工程师推荐A
            OrderConsts.CHANNEL_ID_MASTER_RECOMMEND_B, // 啄木鸟工程师推荐B
            OrderConsts.CHANNEL_ID_CNHB_MASTER_RECOMMEND // 川南环保工程师推荐
    );



    /**
     * 优惠类型
     * 1 全免 2 立减  3 折扣  4 满减
     */
    public final static int ORDER_DISCOUNT_TYPE_FREE = 1;
    public final static int ORDER_DISCOUNT_TYPE_LIMIT_FREE = 2;
    public final static int ORDER_DISCOUNT_TYPE_DISCOUNT = 3;
    public final static int ORDER_DISCOUNT_TYPE_FULFILL_FREE = 4;

    /**
     * 工单备注类型
     * 1 取消 2 回访 3 备注 4 退款 5 评价备注 6 挂起 7 服务审核失败 8 赔偿单 9 订单验收 10 改派
     */
    public final static int ORDER_REMARK_TYPE_CANCEL = 1;
    public final static int ORDER_REMARK_TYPE_REPLY = 2;
    public final static int ORDER_REMARK_TYPE_REMARK = 3;
    public final static int ORDER_REMARK_TYPE_REFUND = 4;
    public final static int ORDER_REMARK_TYPE_COMMENT_REMARK = 5;
    public final static int ORDER_REMARK_TYPE_SUSPEND = 6;
    public final static int ORDER_REMARK_TYPE_REVIEW_FAIL = 7;
    public final static int ORDER_REMARK_TYPE_COMPENSATE = 8;
    public final static int ORDER_REMARK_TYPE_ACCEPTANCE = 9;
    public final static int ORDER_REMARK_TYPE_REDISTRIBUTE = 10;
    public final static int ORDER_REMARK_TYPE_INPUT = 11;

    /**
     * 工单收费
     */
    public final static int ORDER_AMOUNT_LEVEL_1 = 1;
    public final static int ORDER_AMOUNT_LEVEL_2 = 2;
    public final static int ORDER_AMOUNT_LEVEL_3 = 3;
    public final static int ORDER_AMOUNT_LEVEL_4 = 4;
    public final static int ORDER_AMOUNT_LEVEL_5 = 5;
    public final static int ORDER_AMOUNT_LEVEL_6 = 6;
    public final static int ORDER_AMOUNT_LEVEL_7 = 7;
    public final static int ORDER_AMOUNT_LEVEL_8 = 8;
    public final static int ORDER_AMOUNT_LEVEL_9 = 9;
    public final static int ORDER_AMOUNT_LEVEL_10 = 10;

    /**
     * 跟单类型 2000 话务跟单 3000 用户需求待定 4000 用户取消服务 5000 用户需求无法服务 6000 用户不支付
     * 7000 工程师问题 8000 工作状态备注 9000 现场紧急情况 11000 其他 12000 话务权限跟单 13000 派单权限跟单 14000 话务权限派单权限共有跟单类型 15000 app跟单类型
     */
    public final static int ORDER_TRACT_TYPE_TRAFFIC = 2000;
    public final static int ORDER_TRACT_TYPE_USERWAIT = 3000;
    public final static int ORDER_TRACT_TYPE_USERCANCEL = 4000;
    public final static int ORDER_TRACT_TYPE_UNSERVICE = 5000;
    public final static int ORDER_TRACT_TYPE_UNPAY = 6000;
    public final static int ORDER_TRACT_TYPE_MASTER = 7000;
    public final static int ORDER_TRACT_TYPE_REMARK = 8000;
    public final static int ORDER_TRACT_TYPE_URGENT = 9000;
    public final static int ORDER_TRACT_TYPE_OTHER = 11000;
    public final static int ORDER_TRACT_TYPE_TRAFFIC_PER = 12000;
    public final static int ORDER_TRACT_TYPE_SEND = 13000;
    public final static int ORDER_TRACT_TYPE_TS = 14000;
    public final static int ORDER_TRACT_TYPE_APP = 15000;


    /**
     * 特殊跟单标识
     */
    public final static int ORDER_TRACT_TYPE_WAIT_PART_ID = 1024;    // 待件
    public final static int ORDER_TRACT_TYPE_DELIVERY_ID = 1023;     // 拉修
    public final static int ORDER_TRACT_TYPE_WAIT_CANCEL_ID = 1013;  // 待取消

    public final static int ORDER_TRACT_TYPE_STATEMENT_ID = 1035;   // 统一结算跟单ID
    public final static int ORDER_TRACT_TYPE_INVOICE_ID = 1018;     // 开发票跟单ID
    public final static int ORDER_TRACT_TYPE_FAIL_APPLY_ID = 1028;  // 失败申请跟单ID

    public final static int ORDER_TRACT_OTHER_TYPE_ID = 1039;          // 其他跟单类型Id
    public final static int ORDER_TRACT_OTHER_TYPE_LEVEL = 1;         // 其他跟单等级
    public final static int ORDER_TRACT_TMALL_TYPE_ID = 1041;        //天猫自动跟单
    public final static int ORDER_TRACT_PDD_TYPE_ID = 1076;         //拼多多自动跟单
    public final static int ORDER_TRACT_ZHIMI_TYPE_ID = 1077;         //智米自动跟单（服务商代收货款）
    public final static int ORDER_TRACT_SF_NOTICE_ID = 1044;          // 顺丰安装推送到货发起跟单
    public final static int ORDER_TRACT_GMGJ_SECOND_PAY = 1048;       //国美管家自动跟单（第二次调取支付链接时，服务项或金额发生变更时）

    /**
     * 测试的mapId
     */
    public final static int CANCEL_TEST_ID = 21;

    /**
     * 重复的mapId
     */
    public final static int CANCEL_DUPLICATE_ID = 22;

    /**
     * 超时未支付 取消缘由id
     */
    public final static int CANCEL_PAY_TIMEOUT_ID = 47;

    /**
     * 疫情无法服务 取消缘由id
     */
    public final static int CANCEL_REASON_EPIDEMIC_UNSERVICEABLE_ID = 103;

    /**
     * 派单超时 取消缘由id
     */
    public final static int DISTRIBUTE_TIMEOUT_WAIT_ID = 106;

    /**
     * 评价类型 1 默认评价 2 用户评价 3 回访评价 4 第三方评价
     */
    public final static int COMMENT_TYPE_DEFAULT = 1;
    public final static int COMMENT_TYPE_USER = 2;
    public final static int COMMENT_TYPE_REPLYVISIT = 3;
    public final static int COMMENT_TYPE_THIRD = 4;

    /**
     * 会员审核结果 1.审核中 2. 审核成功 3. 审核失败 4.非延保电器
     */
    public final static int ORDER_MEMBER_REVIEW_RESULT_DOING = 1;
    public final static int ORDER_MEMBER_REVIEW_RESULT_FAIL = 3;
    public final static int ORDER_MEMBER_REVIEW_RESULT_SUCCESS = 2;
    public final static int ORDER_MEMBER_REVIEW_RESULT_NOT_EXTENDEDWARRANTY = 4;

    /**
     * 会员审核状态 1.待工程师审核 2. 工程师审核失败 3. 待平台审核 4.平台审核成功 5. 平台审核失败
     */
    public final static int ORDER_MEMBER_REVIEW_STATUS_WAIT_MASTER = 1;
    public final static int ORDER_MEMBER_REVIEW_STATUS_MASTER_FAIL = 2;
    public final static int ORDER_MEMBER_REVIEW_STATUS_WAIT_PLAT = 3;
    public final static int ORDER_MEMBER_REVIEW_STATUS_PLAT_SUCCESS = 4;
    public final static int ORDER_MEMBER_REVIEW_STATUS_PLAT_FAIL = 5;

    /**
     * 无权益类型
     */
    public final static int ORDER_MEMBER_NONE_EQUITY_TYPE = 100;

    /**
     * 投诉状态 1 无投诉 2 投诉中 3 投诉完成
     */
    public final static int ORDER_COMPLAINT_STATUS_NONE = 1;
    public final static int ORDER_COMPLAINT_STATUS_DOING = 2;
    public final static int ORDER_COMPLAINT_STATUS_COMPLETE = 3;

    /**
     * 异常状态 1 无异常 2 异常中 3 异常完成
     */
    public final static int ORDER_ABNORMAL_STATUS_NONE = 1;
    public final static int ORDER_ABNORMAL_STATUS_DOING = 2;
    public final static int ORDER_ABNORMAL_STATUS_COMPLETE = 3;

    /**
     * 查询条件
     */
    public final static int QUERY_TAB_PRECISION = 0;
    public final static int QUERY_TAB_WAIT_CONFIRM = 1;
    public final static int QUERY_TAB_WAIT_DISTRIBUTE = 2;
    public final static int QUERY_TAB_WAIT_TAKE = 3;
    public final static int QUERY_TAB_WAIT_ACCOUNT = 4;
    public final static int QUERY_TAB_PART_REIMBURSE = 5;
    public final static int QUERY_TAB_INVOICE = 6;
    public final static int QUERY_TAB_WAIT_REPLY = 7;
    public final static int QUERY_TAB_WAIT_CHECKOUT = 8;
    public final static int QUERY_TAB_WAIT_TURN = 9;
    public final static int QUERY_TAB_WAIT_ASSIGN = 10;
    public final static int QUERY_TAB_WAIT_REFUND = 11;
    public final static int QUERY_TAB_FAIL = 12;
    public final static int QUERY_TAB_WAIT_DUTY = 13;

    /**
     * 查询条件
     */
    public final static int QUERY_TAB_ZERO = 0;
    public final static int QUERY_TAB_ONE = 1;
    public final static int QUERY_TAB_TWO = 2;
    public final static int QUERY_TAB_THREE = 3;
    public final static int QUERY_TAB_FOUR = 4;
    public final static int QUERY_TAB_FIVE = 5;
    public final static int QUERY_TAB_SIX = 6;

    /**
     * 订单照片操作
     */
    public final static int ORDER_IMAGE_UPDATE = 1; // 更新
    public final static int ORDER_IMAGE_DELETE = 2; // 删除

    /**
     * 工程师折扣金额
     */
    public final static double MASTER_DISCOUNT_VALUE = 0.9; // 九折

    public final static double DISCOUNT_LEVEL_ONE_VALUE = 0.4; // 6折
    public final static double DISCOUNT_LEVEL_TWO_VALUE = 0.3; // 7折
    public final static double DISCOUNT_LEVEL_THREE_VALUE = 0.1; // 9折

    /**
     * 默认评价时间
     */
    public final static int COMMENT_DEFAULT_DAYS = 25;

    /**
     * 订单超时取消时间
     */
    public final static int ORDER_PREPAY_TIMEOUT_CANCEL_MINUTES = 60;

    /**
     * 订单自动转单时间
     */
    public final static int ORDER_AUTO_TRRN_MINUTES = 5;

    /**
     * 小号记录延迟时间
     */
    public final static int ORDER_CALL_RECORD_MINUTES = 2;

    /**
     * 订单支付类型，1：渠道预付，2：渠道二次支付（工程师收款金额）
     */
    public final static int API_ORDER_PAY_TYPE_CHANNEL_PREPAID = 1;
    public final static int API_ORDER_PAY_TYPE_CHANNEL_MASTER_AMOUNT = 2;


    /**
     * 58 渠道
     */
    public final static String CHANNEL_58 = ",1322,1511,";

    /**
     * 审核状态 1.待审核 2. 审核成功 3. 审核失败
     */
    public final static int REVIEW_STATUS_DOING = 1;
    public final static int REVIEW_STATUS_SUCCESS = 2;
    public final static int REVIEW_STATUS_FAIL = 3;

    /**
     * 图片审核状态 0.待审核 1.审核不合格 2.审核合格 3.无需审核
     */
    public final static int IMAGE_REVIEW_STATUS_WAITING = 0;
    public final static int IMAGE_REVIEW_STATUS_FAIL = 1;
    public final static int IMAGE_REVIEW_STATUS_SUCCESS = 2;
    public final static int IMAGE_REVIEW_STATUS_NO = 3;

    /**
     * 单个用户最多绑定保修卡数量
     */
    public final static int MAX_BIND_WARRANTY_COUNT = 10;

    /**
     * 厂商配件邮寄类型
     */
    public final static int FACTORY_PART_POST_TYPE_SEND = 1; // 邮寄
    public final static int FACTORY_PART_POST_TYPE_RETURN = 2; // 返厂
    /**
     * 厂家寄出配件地址类型：1 寄给用户 2 寄给言而有信公司
     */
    public final static int FACTORY_PART_POST_TO_USER = 1;
    public final static int FACTORY_PART_POST_TO_YEYX = 2;
    /**
     * 快递100邮寄状态state  TRANSIT
     */
    public final static int KUAIDI_100_ONTHEWAY = 0; //在途中
    public final static int KUAIDI_100_ACCEPT = 1; //已揽收
    public final static int KUAIDI_100_PROBLEM = 2; //疑难
    public final static int KUAIDI_100_TRANSIT = 3; //已签收
    public final static int KUAIDI_100_BACKSIGN = 4; //退签
    public final static int KUAIDI_100_CITYTRANSIT = 5; //同城派送中
    public final static int KUAIDI_100_BACK = 6; //退回
    public final static int KUAIDI_100_TRANSFORM = 7; //转单

    /**
     * 工程师主管角色
     */
    public final static int COMPANY_MASTER_LEADER_ROLE_ID = 296;

    /**
     * 订单同步类型
     */
    public final static int ORDER_NOTIFY_TYPE_NEW = 1;
    public final static int ORDER_NOTIFY_TYPE_CHANGE = 2;

    /**
     * 订单预警状态
     */
    public final static int ORDER_WARN_STATUS_ACCEPT = 1; // 收到预警
    public final static int ORDER_WARN_STATUS_REPLIED = 2; // 已回复

    /**
     * 退款方式
     */
    public final static int ORDER_REFUND_TYPE_ONLINE = 1; // 原路返回
    public final static int ORDER_REFUND_TYPE_OFFLINE = 2; // 线下退款

    /**
     * 常用渠道Id
     */
    public static final int CHANNEL_ID_TMALL_WYG = 10133;         // 勤鸽 战略渠道F2
    public static final int CHANNEL_ID_TMALL_BUSINESS = 31055;    // 天猫B端安装 战略渠道F3
    public static final int CHANNEL_ID_TMALL_PIPE = 33901;        // 天猫勤鸽管道疏通 战略渠道F13
    public static final int CHANNEL_ID_TMALL_BIZ_OPPEIN = 34958;  // 天猫欧派
    public static final int CHANNEL_ID_TMALL_BIZ_LAIMD = 35002;   // 天猫莱梅德
    public static final int CHANNEL_ID_JINGDONG_SERVICE_PLUS = 10777;   // 京东服务+
    public static final int CHANNEL_ID_GUANGZHOU_HAOBAI_WECHAT = 10109;   // 广州号百公众号
    public static final int CHANNEL_ID_KEBIYOUJU = 10136;   // 雄天集团可比优居
    public static final int CHANNEL_ID_TRANSPOPO = 31075;   // 铁通会员
    public static final int CHANNEL_ID_DONGBUDAYU = 31103;   // 宇腾达
    public static final int CHANNEL_ID_GUOMEI_MYBQX = 32827;   // 国美美云保清洗
    public static final int CHANNEL_ID_MASTER_RECOMMEND_A = 1585;// 工程师推荐A
    public static final int CHANNEL_ID_MASTER_RECOMMEND_B = 1378;// 工程师推荐B
    public static final int CHANNEL_ID_CNHB_MASTER_RECOMMEND = 32876;// 工程师推荐(川南环保)

    public static final int CHANNEL_ID_HAOBAI_APP = 1195;// 号码百事通APP


    public static final int CHANNEL_ID_DIANPING = 1193;// 美团电评到家

    public static final int CHANNEL_ID_KYX = 33551;     // 到位快易修
    public static final int CHANNEL_ID_APP = 1210;      // 到位APP
    public static final int CHANNEL_ID_DTW = 10108;     // 到位电通王
    public static final int CHANNEL_ID_96980 = 1188;     // 96980
    public static final int CHANNEL_ID_JD_HUADI = 10282;     // 京东华帝
    public static final int CHANNEL_ID_DAOWEI_ZX = 32809; // 到位直选
    public static final int CHANNEL_ID_BAIDU_APP = 40009;  // 百度小程序
    public static final int CHANNEL_ID_YUNDING_LOCK = 34568;  // 云丁鹿客
    public static final int CHANNEL_ID_SF_INSTALL = 35079;   // 顺丰安装
    public static final int CHANNEL_ID_SUNING_BW = 35078;   // 苏宁保外
    public static final int CHANNEL_ID_GOME_GJ_JDWX = 1481;        // 国美管家-平台渠道E10；家电维修
    public static final int CHANNEL_ID_GOME_GJ_ZX = 41479;        // 国美管家-平台渠道E33，宅修

    public static final int CHANNEL_ID_TF_INSTALL = 1522;    // 同城家电D
    public static final int CHANNEL_ID_F8_INSTALL = 33727;   // 战略渠道F8
    public static final int CHANNEL_ID_F14_INSTALL = 33930;   // 战略渠道F14

    public static final int CHANNEL_ID_JD_DAOJIA = 34929;  // 京东到家-啄木鸟到家
    public static final int CHANNEL_ID_JD_QTDJ = 41987;  // 京东到家-青提到家
    public static final int CHANNEL_ID_TMALL_QINGE_BW = 41454; // 天猫勤鸽保外服务

    /**
     * 平台渠道B系列
     */
    public static final int CHANNEL_ID_DJ58_DUJIA = 1511;   // 58到家独家  平台渠道B01
    public static final int CHANNEL_ID_DJ58_DAG = 32794;   // 58到家直约服务API   平台渠道B02
    public static final int CHANNEL_ID_PLAT_CHANNEL_B03 = 10104;   // 平台渠道B03
    public static final int CHANNEL_ID_DJ58_CLIENT = 1322;  // 58到家C店   平台渠道B04
    public static final int CHANNEL_ID_PLAT_CHANNEL_B05 = 1468;   // 平台渠道B05
    public static final int CHANNEL_ID_PLAT_CHANNEL_B06 = 1398;   // 平台渠道B06
    public static final int CHANNEL_ID_PLAT_CHANNEL_B07 = 1353;   // 平台渠道B07
    public static final int CHANNEL_ID_DJ58_APP = 1259;     // 58到家APP  平台渠道B08
    public static final int CHANNEL_ID_PLAT_CHANNEL_B09 = 1313;   // 平台渠道B09
    public static final int CHANNEL_ID_PLAT_CHANNEL_B10 = 1315;   // 平台渠道B10
    public static final int CHANNEL_ID_PLAT_CHANNEL_B11 = 1347;   // 平台渠道B11
    public static final int CHANNEL_ID_PLAT_CHANNEL_B12 = 1348;   // 平台渠道B12
    public static final int CHANNEL_ID_PLAT_CHANNEL_B13 = 1386;   // 平台渠道B13
    public static final int CHANNEL_ID_PLAT_CHANNEL_B14 = 32891;   // 平台渠道B14
    public static final int CHANNEL_ID_PLAT_CHANNEL_B15 = 32892;   // 平台渠道B15

    /**
     * 返修新单固定渠道
     */
    public static final int CHANNEL_ID_PLAT_REWORK_NEW_ORDER = 34345; //啄木鸟返修

    /**
     * 平台渠道B系列
     */
    public static final List<Integer> PLAT_CHANNEL_B_LIST = Lists.newArrayList(
            CHANNEL_ID_DJ58_DUJIA,
            CHANNEL_ID_DJ58_DAG,
            CHANNEL_ID_PLAT_CHANNEL_B03,
            CHANNEL_ID_DJ58_CLIENT,
            CHANNEL_ID_PLAT_CHANNEL_B05,
            CHANNEL_ID_PLAT_CHANNEL_B06,
            CHANNEL_ID_PLAT_CHANNEL_B07,
            CHANNEL_ID_DJ58_APP,
            CHANNEL_ID_PLAT_CHANNEL_B09,
            CHANNEL_ID_PLAT_CHANNEL_B10,
            CHANNEL_ID_PLAT_CHANNEL_B11,
            CHANNEL_ID_PLAT_CHANNEL_B12,
            CHANNEL_ID_PLAT_CHANNEL_B13,
            CHANNEL_ID_PLAT_CHANNEL_B14,
            CHANNEL_ID_PLAT_CHANNEL_B15
    );



    /**
     * 渠道未匹配到产品使用的禁用产品（后台产品）
     */
    public static final int CHANNEL_DISABLED_PRODUCT_ID = 10310;
    /**
     * 渠道未匹配到产品使用的禁用清洗产品（后台产品）
     */
    public static final int CHANNEL_DISABLED_PRODUCT_ID_CLEAN = 11958;

    /**
     * 一次最大查询订单数量
     */
    public static final int MAX_QUERY_ORDER_SIZE = 5000;

    /**
     * 码表一级分类：1061  工程师健康提醒推送
     * 二级分类由业务自己定义
     * 下次plat发版后，替换成
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_HEALTH_PUSH = 1061;

    /**
     * 码表一级分类：1066  隐私小号开通城市
     * 二级分类由业务自己录入 为开通城市id
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_XNO = 1066;

    public static final int BIND_STATUS_BIND = 1;      // 小号已绑定
    public static final int BIND_STATUS_UNBIND = 2;     // 小号已经解绑

    public static final long BIND_TIME = 604800L;     // 小号绑定时长

    /**
     * 码表一级分类：1025  最大支付距离配置
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_LOCAL_PAY = 1025;

    /**
     * 码表一二级分类：1022  代用户报价计价器二维码
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_QUOTATION_EQCODE = 1022;
    public final static int BASE_CODE_MAP_TWO_TYPE_QUOTATION_EQCODE = 1022;

    /**
     * 码表一级分类：1080  验收配置
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_ACCEPTANCE_EQCODE = 1080;
    /**
     * 码表一级分类：1081 代用户确认定金预警
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_DEPOSIT_WARN = 1081;
    /**
     * 码表一级分类：1082 代用户验收预警
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_ACCEPTANCE_WARN = 1082;

    /**
     * 码表一级分类：1112 用户端取消缘由映射
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_USER_CANCEL_MAPPING = 1112;

    /**
     * 码表一级分类：1113 订单冻结金额
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_ORDER_FROZEN_AMOUNT = 1113;

    /**
     * 码表一级分类：1114 言而有信新人扶持单量
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_SUPPORT_NUMBER = 1114;

    /**
     * 码表一级分类：1115 家修匠无法承接线索城市
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_JXJ_UN_SERVICE_CITY = 1115;

    /**
     * 码表一级分类：1116 优质订单渠道
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_HIGH_QUALITY = 1116;

    /**
     * 码表一级分类：常见备注
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_COMMON_REMARK = 1067;

    /**
     * 码表一级分类：1071 派单超时控制
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_DISTRIBUTE_TIMEOUT = 1071;

    /**
     * 码表一级分类：1072 服务商改派次数
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_SERVICE_COMPANY_REDISTRIBUTE_COUNT = 1072;

    /**
     * 码表一级分类：1073 返修原因
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_REWORK_REASON = 1073;

    /**
     * 码表一级分类：1213 提前付试点配置 配置到城市
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_ADVANCE_QUOTE_CITY = 1213;
    /**
     * 码表一级分类：1214 提前付试点配置 - 服务分类 + 前台二级分类
     */
    public final static int BASE_CODE_MAP_ONE_TYPE_ADVANCE_QUOTE_PRODUCT_CATEG = 1214;

    /**
     * 计价器日志类型
     */
    public final static int QUOTATION_START = 1;
    public final static int QUOTATION_END = 2;

    /**
     * 分单不满足原因
     */
    public final static String PRE_DISCONTENT_REASON_ONE = "平台业务类型不满足";
    public final static String PRE_DISCONTENT_REASON_TWO = "平台服务分类不满足";
    public final static String PRE_DISCONTENT_REASON_THREE = "尾款限制不满足";
    public final static String PRE_DISCONTENT_REASON_FOUR = "库存不满足";
    public final static String PRE_DISCONTENT_REASON_FIVE = "分单优先级过低";
    public final static String PRE_DISCONTENT_REASON_SIX = "直营和非直营按比例分单不满足";
    public final static String PRE_DISCONTENT_REASON_EIGHT = "工程师加单所属服务公司可服务";
    public final static String PRE_DISCONTENT_REASON_NINE = "自动分单有多个服务商";

    /**
     * 审核分类
     */
    // 退款单审核
    public final static int OMS_ORDER_REVIEW_REFUND = 10;
    // 赔偿单审核
    public final static int OMS_ORDER_REVIEW_COMPENSATE = 11;
    // 重复支付退款审核
    public final static int OMS_ORDER_REVIEW_DUPLICATE_PAY_REFUND = 12;

    /**
     * 审核状态
     */
    // 待审核
    public final static int OMS_ORDER_REVIEW_STATUS_CHECK = 1;
    // 审核成功
    public final static int OMS_ORDER_REVIEW_STATUS_CHECK_SUCCESS = 2;
    // 审核失败
    public final static int OMS_ORDER_REVIEW_STATUS_CHECK_FAIL = 3;

    /**
     * 订单验收
     */
    public static final int ORDER_ACCEPTANCE_STATUS_WAIT = 1; // 待验收
    public static final int ORDER_ACCEPTANCE_STATUS_SUCCESS = 2; // 验收成功
    public static final int ORDER_ACCEPTANCE_STATUS_FAIL = 3; // 验收失败
    public static final int ORDER_ACCEPTANCE_STATUS_NON = 4; // 无需验收
    public static final int ORDER_ACCEPTANCE_STATUS_CANCEL = 5; // 取消验收

    /**
     * 验收类型
     */
    public static final int ORDER_ACCEPTANCE_TYPE_PAYMENT = 11; // 尾款
    public static final int ORDER_ACCEPTANCE_TYPE_DEPOSIT = 10; // 定金
    public static final int ORDER_ACCEPTANCE_TYPE_PROGRESS = 12; // 进度款
    public static final int ORDER_ACCEPTANCE_TYPE_PAYMENT_CONFIRM = 21; // 短信尾款确认
    public static final int ORDER_ACCEPTANCE_TYPE_PROGRESS_CONFIRM = 22; // 短信进度款确认

    /**
     * 验收结果类型
     */
    public static final int ORDER_ACCEPTANCE_RESULT_TYPE_DEFAULT = 1; // 默认
    public static final int ORDER_ACCEPTANCE_RESULT_TYPE_H5 = 2; // H5
    public static final int ORDER_ACCEPTANCE_RESULT_TYPE_CAPTCHA = 3; // 验证码

    /**
     * 验收失败类型
     */
    public static final int ORDER_ACCEPTANCE_FAIL_TYPE_DEFAULT = 1; // 验收失败
    public static final int ORDER_ACCEPTANCE_FAIL_TYPE_INSPECTION_REPORT = 2; // 验机报告
    public static final int ORDER_ACCEPTANCE_FAIL_TYPE_COST_DETAIL = 3; // 费用明细
    public static final int ORDER_ACCEPTANCE_FAIL_TYPE_SERVICE_CONTENT = 4; // 服务内容

    /**
     * 责任归属类型 1：原工程师 2：当前工程师
     */
    public static final int ORDER_LIABLE_TYPE_SOURCE_MASTER = 1; // 原工程师
    public static final int ORDER_LIABLE_TYPE_CURRENT_MASTER = 2; // 当前工程师

    /**
     * 工单关系表
     */
    public static final int WORK_RELATION_TYPE_REPAIR = 1; // 返修
    public static final int WORK_RELATION_TYPE_REFUND = 2; // 退款
    public static final int WORK_RELATION_TYPE_COMPENSATE = 3; // 赔偿
    public static final int WORK_RELATION_TYPE_REPAIR_NEW = 4; // 返修新单
    public static final int WORK_RELATION_TYPE_NEW_INSURANCE_FORM = 5; // 过保新单



    /**
     * 支持线上退款的支付渠道
     */
    public final static List<Integer> REFUND_PAY_CHANNEL_SUPPORT = Arrays.asList(
            PayConsts.PAY_CHANNEL_PLATFORM_ALIPAY,
            PayConsts.PAY_CHANNEL_PLATFORM_WEIXINPAY,
            PayConsts.PAY_CHANNEL_THIRD_ECITIC,
            PayConsts.PAY_CHANNEL_PLATFORM_BAIDU);

    /**
     * 申请退款后，忽略的操作类型
     */
    public final static List<Integer> REFUND_IGNORE_ORDER_OP_TYPE = Arrays.asList(ORDER_OP_TYPE_INPUT,
            ORDER_OP_TYPE_DETAIL,
            ORDER_OP_TYPE_REMARK,
            ORDER_OP_TYPE_TEST,
            ORDER_OP_TYPE_CANCEL,
            ORDER_OP_TYPE_ORDER_PHOTO,
            ORDER_OP_TYPE_COPY,
//            ORDER_OP_TYPE_TRACK,
            ORDER_OP_TYPE_TRACK_NEW,
            ORDER_OP_TYPE_COMPLAINT,
            ORDER_OP_TYPE_ABNORMAL,
            ORDER_OP_TYPE_NONSTANDARD
    );

    /**
     * 快递100状态 转 啄木鸟快递状态
     * @param state
     * @return
     */
    public static Integer getPostStatusByState(Integer state){
        switch (state) {
            case KUAIDI_100_ONTHEWAY:
            case KUAIDI_100_ACCEPT:
            case KUAIDI_100_PROBLEM:
            case KUAIDI_100_CITYTRANSIT:
            case KUAIDI_100_TRANSFORM:
                return GlobalConsts.EXPRESS_POST_STATUS_TRANSIT;
            case KUAIDI_100_TRANSIT:
                return GlobalConsts.EXPRESS_POST_STATUS_RECEIPT;
            case KUAIDI_100_BACKSIGN:
            case KUAIDI_100_BACK:
                return GlobalConsts.EXPRESS_POST_STATUS_REFUND;
            default:
                return -1;
        }
    }
    /**
     * 厂商配件邮寄类型名称
     *
     * @param postType
     * @return
     */
    public static String getFactoryPartPostTypeName(Integer postType) {
        switch (postType) {
            case OrderConsts.FACTORY_PART_POST_TYPE_SEND:
                return "新件邮寄";
            case OrderConsts.FACTORY_PART_POST_TYPE_RETURN:
                return "旧件返厂";
            default:
                return "";
        }
    }

    public static String getOrderWorkReviewStatusName(Integer reviewStatus){
        switch (reviewStatus) {
            case OMS_ORDER_REVIEW_STATUS_CHECK:
                return "待审核";
            case OMS_ORDER_REVIEW_STATUS_CHECK_SUCCESS:
                return "审核通过";
            case OMS_ORDER_REVIEW_STATUS_CHECK_FAIL:
                return "审核拒绝";
            default:
                return "";
        }
    }

    /**
     * 获取会员审核状态名称
     *
     * @param reviewStatus
     * @return
     */
    public static String getMemberReviewResultStatusName(Integer reviewStatus) {
        switch (reviewStatus) {
            case OrderConsts.ORDER_MEMBER_REVIEW_RESULT_SUCCESS:
                return "成功";
            case OrderConsts.ORDER_MEMBER_REVIEW_RESULT_DOING:
                return "进行中";
            case OrderConsts.ORDER_MEMBER_REVIEW_RESULT_NOT_EXTENDEDWARRANTY:
                return "非延保电器";
            case OrderConsts.ORDER_MEMBER_REVIEW_RESULT_FAIL:
                return "失败";
            default:
                return "无需审核";
        }
    }

    /**
     * 获取会员审核状态名称
     *
     * @param reviewStatus
     * @return
     */
    public static String getMemberReviewStatusName(Integer reviewStatus) {
        switch (reviewStatus) {
            case OrderConsts.ORDER_MEMBER_REVIEW_STATUS_WAIT_MASTER:
                return "待工程师审核";
            case OrderConsts.ORDER_MEMBER_REVIEW_STATUS_MASTER_FAIL:
                return "工程师审核失败";
            case OrderConsts.ORDER_MEMBER_REVIEW_STATUS_WAIT_PLAT:
                return "待平台审核";
            case OrderConsts.ORDER_MEMBER_REVIEW_STATUS_PLAT_SUCCESS:
                return "平台审核成功";
            case OrderConsts.ORDER_MEMBER_REVIEW_STATUS_PLAT_FAIL:
                return "平台审核失败";
            default:
                return "无需审核";
        }
    }

    /**
     * 获取配件类型
     *
     * @param type
     * @return
     */
    public static String getPartTypeName(Integer type) {
        switch (type) {
            case OrderConsts.PART_TYPE_SOURCING_IN:
                return "内采";
            case OrderConsts.PART_TYPE_SOURCING_OUT:
                return "外报";
            case OrderConsts.PART_TYPE_DELIVER:
                return "订单杂项费用";
            default:
                return "未知";
        }
    }

    /**
     * 查询工单工程师类型名称
     *
     * @param orderMasterType 工单工程师类型
     * @return 工单工程师类型名称
     */
    public static String getOrderMasterTypeName(int orderMasterType) {
        switch (orderMasterType) {
            case OrderConsts.ORDER_MASTER_TYPE_MAIN:
                return "主工程师";
            case OrderConsts.ORDER_MASTER_TYPE_SLAVE:
                return "从工程师";
            default:
                return "未知";
        }
    }

    /**
     * 查询跟单类型名称
     *
     * @param type 工单跟单类型
     * @return 工单类型名称
     */
    public static String getTrackTypeName(int type) {
        switch (type) {
            case OrderConsts.ORDER_TRACT_TYPE_TRAFFIC:
                return "话务跟单";
            case OrderConsts.ORDER_TRACT_TYPE_USERWAIT:
                return "用户需求待定";
            case OrderConsts.ORDER_TRACT_TYPE_USERCANCEL:
                return "用户取消服务";
            case OrderConsts.ORDER_TRACT_TYPE_UNSERVICE:
                return "用户需求无法服务";
            case OrderConsts.ORDER_TRACT_TYPE_UNPAY:
                return "用户不支付";
            case OrderConsts.ORDER_TRACT_TYPE_MASTER:
                return "工程师问题";
            case OrderConsts.ORDER_TRACT_TYPE_REMARK:
                return "工作状态备注";
            case OrderConsts.ORDER_TRACT_TYPE_URGENT:
                return "现场紧急情况";
            case OrderConsts.ORDER_TRACT_TYPE_OTHER:
                return "其他";
            case OrderConsts.ORDER_TRACT_TYPE_TRAFFIC_PER:
                return "话务权限跟单";
            case OrderConsts.ORDER_TRACT_TYPE_SEND:
                return "派单权限跟单";
            case OrderConsts.ORDER_TRACT_TYPE_TS:
                return "话务权限派单权限共有跟单类型";
            default:
                return "未知";
        }
    }

    /**
     * 查询工单类型名称
     *
     * @param orderType 工单类型
     * @return 工单类型名称
     */
    public static String getOrderTypeName(int orderType) {
        switch (orderType) {
            case OrderConsts.ORDER_TYPE_NEW:
                return "新单";
            case OrderConsts.ORDER_TYPE_REWORK:
                return "返修单";
            case OrderConsts.ORDER_TYPE_REFUND:
                return "退款单";
            case OrderConsts.ORDER_TYPE_COMPENSATE:
                return "赔偿单";
            default:
                return "未知";
        }
    }

    /**
     * 查询工单贴花状态名称
     *
     * @param status 贴花状态
     * @return 贴花状态名称
     */
    public static String getAppliqueStatusName(int status) {
        switch (status) {
            case GlobalConsts.YES:
                return "有效";
            case GlobalConsts.NO:
                return "无效";
            default:
                return "";
        }
    }

    /**
     * 查询工程师形象状态名称
     *
     * @param status 工程师形象状态
     * @return 工程师形象状态名称
     */
    public static String getMasterImageStatusName(int status) {
        switch (status) {
            case GlobalConsts.YES:
                return "合格";
            case GlobalConsts.NO:
                return "不合格";
            default:
                return "";
        }
    }

    /**
     * 查询工单操作类型名称
     *
     * @param type 工单操作类型
     * @return 工单操作类型名称
     */
    public static String getOperateTypeName(int type) {
        switch (type) {
            case OrderConsts.ORDER_OP_TYPE_INPUT:
                return "下单";
            case OrderConsts.ORDER_OP_TYPE_CONFIRM:
                return "确认";
            case OrderConsts.ORDER_OP_TYPE_ASSIGN:
                return "分单";
            case OrderConsts.ORDER_OP_TYPE_DISTRIBUTE:
                return "派单";
            case OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW:
                return "派单（新）";
            case OrderConsts.ORDER_OP_TYPE_TAKE:
                return "领单";
            case OrderConsts.ORDER_OP_TYPE_VISIT:
                return "上门";
            case OrderConsts.ORDER_OP_TYPE_SUSPEND:
                return "挂起";
            case OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE:
                return "服务完成";
            case OrderConsts.ORDER_OP_TYPE_COMPLETE:
                return "完成";
            // 子公司角色（不含：子公司老总）
            case OrderConsts.ORDER_OP_TYPE_CHECKOUT:
                return "收单";
            // 子公司老总&总部角色
            case OrderConsts.ORDER_OP_TYPE_ADMIN_CHECKOUT:
                return "老总收单";
            // 子公司角色（不含：子公司老总）
            case OrderConsts.ORDER_OP_TYPE_ACCOUNT:
                return "算账";
            // 子公司老总&总部角色
            case OrderConsts.ORDER_OP_TYPE_ADMIN_ACCOUNT:
                return "老总算账";
            case OrderConsts.ORDER_OP_TYPE__MASTER_RETENTION:
                return "工程师提成";
            case OrderConsts.ORDER_OP_TYPE_CANCEL:
                return "取消";
            case OrderConsts.ORDER_OP_TYPE_FAIL:
                return "失败";
            case OrderConsts.ORDER_OP_TYPE_DISCARD:
                return "弃单";
            case OrderConsts.ORDER_OP_TYPE_REPLY_VISIT:
                return "回访";
            case OrderConsts.ORDER_OP_TYPE_COPY:
                return "复制";
            case OrderConsts.ORDER_OP_TYPE_REWORK:
                return "返修";
            case OrderConsts.ORDER_OP_TYPE_DETAIL:
                return "详情";
            case OrderConsts.ORDER_OP_TYPE_REMARK:
                return "备注";
            case OrderConsts.ORDER_OP_TYPE_MASTER_SHARING:
                return "工单分润";
            case OrderConsts.ORDER_OP_TYPE_MASTER_REMARK:
                return "工程师备注";
            case OrderConsts.ORDER_OP_TYPE_MULTI_MASTER:
                return "多工程师";
            case OrderConsts.ORDER_OP_TYPE_TEST:
                return "测试单";
            case OrderConsts.ORDER_OP_TYPE_DUPLICATE:
                return "重复单";
            case OrderConsts.ORDER_OP_TYPE_RECORDING:
                return "录音";
            case OrderConsts.ORDER_OP_TYPE_MULTIPLE_VISIT:
                return "多次上门";
            case OrderConsts.ORDER_OP_TYPE_UPDATE:
                return "修改";
            case OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL:
                return "改渠道";
            case OrderConsts.ORDER_OP_TYPE_UPDATE_APPLIQUE:
                return "改贴花";
//            case OrderConsts.ORDER_OP_TYPE_UPDATE_STATUS:
//                return "改状态";
            case OrderConsts.ORDER_OP_TYPE_UPDATE_PRICE:
                return "改定金";
            case OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT:
                return "改预付款";
//            case OrderConsts.ORDER_OP_TYPE_ADMIN_UPDATE_CHANNEL_PREPAY_AMOUNT:
//                return "总部预付";
//            case OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_AMOUNT:
//                return "改渠道费";
            case OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE:
                return "优惠";
//            case OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_TWO:
//                return "七折优惠";
//            case OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_THREE:
//                return "九折优惠";
            case OrderConsts.ORDER_OP_TYPE_DISCOUNT_FREE:
                return "特殊优惠";
            case OrderConsts.ORDER_OP_TYPE_SERVICE_ITEM:
                return "改价格";
            case OrderConsts.ORDER_OP_TYPE_PART:
                return "核配件";
            case OrderConsts.ORDER_OP_TYPE_WARRANTY:
                return "保修信息";
            case OrderConsts.ORDER_OP_TYPE_PART_REIMBURSE:
                return "配件报销";
            case OrderConsts.ORDER_OP_TYPE_INVOICE:
                return "开发票";
            case OrderConsts.ORDER_OP_TYPE_INVOICE_REMIND:
                return "推送开票";
            case OrderConsts.ORDER_OP_TYPE_INVOICE_FEED_BACK:
                return "发票反馈";
            case OrderConsts.ORDER_OP_TYPE_REFUND:
                return "退款单";
//            case OrderConsts.ORDER_OP_TYPE_TRACK:
//                return "跟单";
            case OrderConsts.ORDER_OP_TYPE_TRACK_NEW:
                return "跟单（新）";
            case OrderConsts.ORDER_OP_TYPE_COMPLAINT:
                return "投诉";
            case OrderConsts.ORDER_OP_TYPE_ABNORMAL:
                return "服务异常";
            case OrderConsts.ORDER_OP_TYPE_COMMENT_REMARK:
                return "评价备注";
            case OrderConsts.ORDER_OP_TYPE_OLD_PART_POST:
                return "邮寄旧件";
            case OrderConsts.ORDER_OP_TYPE_ASSIGN_BACK:
                return "分单撤回";
            case OrderConsts.ORDER_OP_TYPE_AMOUNT_REVIEW:
                return "价格审核";
            case OrderConsts.ORDER_OP_TYPE_OLD_PART_TO_FACTORY:
                return "旧件返厂";
            case OrderConsts.ORDER_OP_TYPE_PART_POST:
                return "邮寄配件";
            case OrderConsts.ORDER_OP_TYPE_PART_BACK:
                return "配件撤回";
            case OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_BACK:
                return "派单撤回";
            case OrderConsts.ORDER_OP_TYPE_PART_REVIEW:
                return "配件审核";
            case OrderConsts.ORDER_OP_TYPE_MEM_PLAT_REVIEW:
                return "审核";
            case OrderConsts.ORDER_OP_TYPE_TURN:
                return "转单";
            case OrderConsts.ORDER_OP_TYPE_ORDER_PHOTO:
                return "工单照片";
            case OrderConsts.ORDER_OP_TYPE_SIGN_IN:
                return "签到";
            case OrderConsts.ORDER_OP_TYPE_CALL_LOG:
                return "语音记录";
            case ORDER_OP_TYPE_UPDATE_ADDRESS:
                return "修改地址";
            case ORDER_OP_TYPE_MODIFY_DUTY_TIME:
                return "修改预约";
            case OrderConsts.ORDER_OP_TYPE_NONSTANDARD:
                return "非标信息";
            case ORDER_OP_TYPE_EXPRESS:
                return "快递信息";
            case ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW:
                return "服务审核";
            case ORDER_OP_TYPE_NEW_MACHINE_PART:
                return "新机配件";
            case ORDER_OP_TYPE_MANDATORY_DISTRIBUTE:
                return "强制派单";
            case ORDER_OP_TYPE_REFUND_VOUCHER:
                return "退款凭证";
            case ORDER_OP_TYPE_SPECIAL_ADJUSTMENT:
                return "特殊调整";
            case ORDER_OP_TYPE_REMINDER:
                return "一键提醒";
            case ORDER_OP_TYPE_CHANGE_ASSIGNMENT:
                return "更改分配";
            case ORDER_OP_TYPE_ORDER_TAG:
                return "标记";
            case ORDER_OP_TYPE_COMPENSATE:
                return "赔偿单";
            case ORDER_OP_TYPE_COMPENSATE_REVIEW:
                return "赔偿单审核";
            case ORDER_OP_TYPE_REMIT_VOUCHER:
                return "打款凭证";
            case ORDER_OP_TYPE_ORDER_CHECK:
                return "抽查";
            case ORDER_OP_TYPE_ORDER_TEMP_XNO:
                return "临时小号";
            case ORDER_OP_TYPE_MODIFY_PRODUCT:
                return "修改产品";
            case ORDER_OP_TYPE_MODIFY_QUOTATION:
                return "修改订单报价";
            default:
                return "未知";
        }
    }


    /**
     * 获取意向单操作类型
     * @return
     */
    private static List<DictModel> getPurposeOperateTypeList(){
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_PURPOSE_OP_TYPE_SALE, "售卖"));
        items.add(new DictModel(OrderConsts.ORDER_PURPOSE_OP_TYPE_CREATE, "下单"));

        return items;
    }

    /**
     * 工单评价操作类型
     *
     * @return
     */
    public static List<DictModel> getCommentOperateTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DETAIL, "详情"));
        return items;
    }


    /**
     * 获取工单操作类型
     *
     * @return
     */
    public static List<DictModel> getOperateTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DETAIL, "详情"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE, "修改"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CONFIRM, "确认"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN, "分单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN_BACK, "分单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MANDATORY_DISTRIBUTE, "强制派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW, "派单（新）"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_BACK, "派单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTIPLE_VISIT, "多次上门"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW, "服务完成审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE, "服务完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLETE, "完成"));
        // 子公司角色（不含：子公司老总）
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHECKOUT, "收单"));
        // 子公司老总 & 总部角色 去掉
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ADMIN_CHECKOUT, "老总收单"));
        // 子公司角色（不含：子公司老总）
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ACCOUNT, "算账"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TURN, "转单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ABNORMAL, "服务异常"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLAINT, "投诉"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND, "退款单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REWORK, "返修"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COPY, "复制"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_ITEM, "改价格"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT, "改预付款"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE, "优惠"));
        // 新增全免优惠 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_FREE, "特殊优惠"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_PHOTO, "工单照片"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_WARRANTY, "保修信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART, "核配件"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART_REIMBURSE, "配件报销"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTI_MASTER, "多工程师"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMARK, "备注"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHANGE_ASSIGNMENT, "更改分配"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MASTER_SHARING, "工单分润"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_REMIND, "推送开票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE, "开发票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_FEED_BACK, "发票反馈"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK_NEW, "跟单（新）"));
//        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK, "跟单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SUSPEND, "挂起"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CALL_LOG, "语音记录"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MEM_PLAT_REVIEW, "后台审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NEW_MACHINE_PART, "新机配件信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NONSTANDARD, "非标信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL, "改渠道"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SPECIAL_ADJUSTMENT, "特殊调整"));

        // 7折优惠、9折优惠去掉  Xiewenbing 2019.11.29
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_TWO, "7折优惠"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_THREE, "9折优惠"));

        // 总部预付去掉  Xiewenbing 2019.11.29
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ADMIN_UPDATE_CHANNEL_PREPAY_AMOUNT, "总部预付"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_APPLIQUE, "改贴花"));

        //items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMMENT_REMARK, "评价备注"));

        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INPUT, "下单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TAKE, "领单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_VISIT, "上门"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MASTER_REMARK, "工程师备注"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_OLD_PART_POST, "邮寄旧件"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_AMOUNT_REVIEW, "价格审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_OLD_PART_TO_FACTORY, "旧件返厂"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART_POST, "邮寄配件"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART_BACK, "配件撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MEM_MASTER_REVIEW, "工程师审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND_VOUCHER, "退款凭证"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SIGN_IN, "签到"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_EXPRESS, "快递信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMINDER, "一键提醒"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TAG, "标记"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE, "赔偿单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE_REVIEW, "赔偿单审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMIT_VOUCHER, "打款凭证"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_CHECK, "抽查"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TEMP_XNO, "临时小号"));
        return items;
    }

    /**
     * 获取言而有信服务工单操作类型
     *
     * @return
     */
    public static List<DictModel> getYeyxOperateTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DETAIL, "详情"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE, "修改"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CONFIRM, "确认"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN, "分单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN_BACK, "分单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW, "派单（新）"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_BACK, "派单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTIPLE_VISIT, "多次上门"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW, "服务完成审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE, "服务完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLETE, "完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHECKOUT, "收单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ACCOUNT, "算账"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TURN, "转单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLAINT, "投诉"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND, "退款单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REWORK, "返修"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COPY, "复制"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_ITEM, "改价格"));
        // 添加改预付款 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT, "改预付款"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE, "优惠"));
        // 新增全免优惠 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_FREE, "特殊优惠"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_PHOTO, "工单照片"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART, "核配件"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTI_MASTER, "多工程师"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMARK, "备注"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MASTER_SHARING, "工单分润"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_REMIND, "推送开票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE, "开发票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_FEED_BACK, "发票反馈"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK_NEW, "跟单(新)"));
//        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK, "跟单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SUSPEND, "挂起"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CALL_LOG, "语音记录"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NEW_MACHINE_PART, "新机配件信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NONSTANDARD, "非标信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL, "改渠道"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SPECIAL_ADJUSTMENT, "特殊调整"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND_VOUCHER, "退款凭证"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMINDER, "一键提醒"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TAG, "标记"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE, "赔偿单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE_REVIEW, "赔偿单审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMIT_VOUCHER, "打款凭证"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_CHECK, "抽查"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TEMP_XNO, "临时小号"));

        // 7折优惠、9折优惠去掉  Xiewenbing 2019.11.29
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_TWO, "7折优惠"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_THREE, "9折优惠"));
        // 总部预付去掉  Xiewenbing 2019.11.29
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ADMIN_UPDATE_CHANNEL_PREPAY_AMOUNT, "总部预付"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_WARRANTY, "保修信息"));

        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SIGN_IN, "签到"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_EXPRESS, "快递信息"));

        return items;
    }

    /**
     * 获取一步维修服务工单操作类型
     *
     * @return
     */
    public static List<DictModel> getSaasOperateTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DETAIL, "详情"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE, "修改"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CONFIRM, "确认"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN, "分单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN_BACK, "分单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW, "派单（新）"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_BACK, "派单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTIPLE_VISIT, "多次上门"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW, "服务完成审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE, "服务完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLETE, "完成"));
        // 子公司角色（不含：子公司老总）
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHECKOUT, "收单"));
        // 子公司角色（不含：子公司老总）
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ACCOUNT, "算账"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TURN, "转单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND, "退款单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REWORK, "返修"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COPY, "复制"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_ITEM, "改价格"));
        // 添加改预付款 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT, "改预付款"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE, "优惠"));
        // 新增全免优惠 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_FREE, "特殊优惠"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_PHOTO, "工单照片"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART, "核配件"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTI_MASTER, "多工程师"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMARK, "备注"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MASTER_SHARING, "工单分润"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_REMIND, "推送开票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE, "开发票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_FEED_BACK, "发票反馈"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK_NEW, "跟单（新）"));
//        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK, "跟单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SUSPEND, "挂起"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CALL_LOG, "语音记录"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NEW_MACHINE_PART, "新机配件信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NONSTANDARD, "非标信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL, "改渠道"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SPECIAL_ADJUSTMENT, "特殊调整"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_WARRANTY, "保修信息"));

        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SIGN_IN, "签到"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND_VOUCHER, "退款凭证"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_EXPRESS, "快递信息"));
        // 子公司老总 & 总部角色 去掉
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ADMIN_CHECKOUT, "老总收单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMINDER, "一键提醒"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TAG, "标记"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE, "赔偿单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE_REVIEW, "赔偿单审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMIT_VOUCHER, "打款凭证"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_CHECK, "抽查"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TEMP_XNO, "临时小号"));
        return items;
    }

    /**
     * 获取川南环保服务工单操作类型
     *
     * @return
     */
    public static List<DictModel> getCnhbOperateTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DETAIL, "详情"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE, "修改"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CONFIRM, "确认"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN, "分单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ASSIGN_BACK, "分单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTIPLE_VISIT, "多次上门"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW, "派单（新）"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_BACK, "派单撤回"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE_REVIEW, "服务完成审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_COMPLETE, "服务完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLETE, "完成"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHECKOUT, "收单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ACCOUNT, "算账"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TURN, "转单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPLAINT, "投诉"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND, "退款单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REWORK, "返修"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COPY, "复制"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SERVICE_ITEM, "改价格"));
        // 添加改预付款 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL_PREPAY_AMOUNT, "改预付款"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_LEVEL_ONE, "优惠"));
        // 新增全免优惠 Xiewenbing 2019.11.29
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISCOUNT_FREE, "特殊优惠"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_PHOTO, "工单照片"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_WARRANTY, "保修信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART, "核配件"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_PART_REIMBURSE, "配件报销"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MULTI_MASTER, "多工程师"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMARK, "备注"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_MASTER_SHARING, "工单分润"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_REMIND, "推送开票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE, "开发票"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INVOICE_FEED_BACK, "发票反馈"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK_NEW, "跟单（新）"));
//        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK, "跟单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SUSPEND, "挂起"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CALL_LOG, "语音记录"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NEW_MACHINE_PART, "新机配件信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_NONSTANDARD, "非标信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_UPDATE_CHANNEL, "改渠道"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SPECIAL_ADJUSTMENT, "特殊调整"));

        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_SIGN_IN, "签到"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REFUND_VOUCHER, "退款凭证"));
        // items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_EXPRESS, "快递信息"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMINDER, "一键提醒"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TAG, "标记"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE, "赔偿单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_COMPENSATE_REVIEW, "赔偿单审核"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REMIT_VOUCHER, "打款凭证"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_CHECK, "抽查"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_ORDER_TEMP_XNO, "临时小号"));
        return items;
    }

    /**
     * 获取工单类型字典数据
     *
     * @return
     */
    public static List<DictModel> getOrderTypeList() {
        List<DictModel> items = Lists.newArrayListWithExpectedSize(2);
        items.add(new DictModel(OrderConsts.ORDER_TYPE_NEW, "新单"));
        items.add(new DictModel(OrderConsts.ORDER_TYPE_REWORK, "返修单"));
        return items;
    }

    /**
     * 获取工单类型字典数据
     * @return
     */
    public static List<DictModel> getProductShowTypeList() {
        List<DictModel> items = Lists.newArrayListWithExpectedSize(2);
        items.add(new DictModel(GlobalConsts.YES, "前台产品"));
        items.add(new DictModel(GlobalConsts.NO, "后台产品"));
        return items;
    }

    /**
     * 工单跟单状态
     *
     * @return
     */
    public static List<DictModel> getOrderTrackStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_TRACK_STATUS_DOING, "跟单中"));
        items.add(new DictModel(OrderConsts.ORDER_TRACK_STATUS_DONE, "跟单完成"));
        items.add(new DictModel(OrderConsts.ORDER_TRACK_STATUS_NONE, "无跟单"));
        return items;
    }

    /**
     * 工单取消结果状态
     *
     * @return
     */
    public static List<DictModel> getOrderCancelResultStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderStatusConsts.WORK_RESULT_DISCARD, "弃单"));
        items.add(new DictModel(OrderStatusConsts.WORK_RESULT_FAIL, "失败"));
        return items;
    }

    /**
     * 工单取消 状态
     *
     * @return
     */
    public static List<DictModel> getCancelWorkStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_INPUT, "已录入"));
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_CONFIRM, "已确认"));
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_ASSIGN, "已分单"));
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_DISTRIBUTE, "已派单"));
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_TAKE, "已领单"));
        items.add(new DictModel(OrderStatusConsts.WORK_STATUS_VISIT, "已上门"));
        return items;
    }

    /**
     * 抢单类型
     *
     * @return
     */
    public static List<DictModel> getGrabTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_GRAB_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_GRAB_TYPE_GRAB, "抢单"));
        return items;
    }

    /**
     * 抢单状态
     *
     * @return
     */
    public static List<DictModel> getGrabStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(GlobalConsts.NO, "已发放"));
        items.add(new DictModel(GlobalConsts.YES, "已抢单"));
        return items;
    }

    /**
     * 价格类型
     *
     * @return
     */
    public static List<DictModel> getServiceItemTypesList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(SERVICE_ITEM_TYPE_ORDER, "服务价格"));
        items.add(new DictModel(SERVICE_ITEM_TYPE_FAULT, "计价器"));
        items.add(new DictModel(SERVICE_ITEM_TYPE_ADVANCE_PAY, "提前付"));
        items.add(new DictModel(SERVICE_ITEM_TYPE_QUOTATION_THREE, "计价器3.0"));
        items.add(new DictModel(SERVICE_ITEM_TYPE_FINAL_PRICE, "一口价"));
        return items;
    }

    /**
     * 报价类型
     *
     * @return
     */
    public static List<DictModel> getQuotationTypesList() {
        List<DictModel> items = Lists.newArrayList();
        items.addAll(OrderConsts.getPartakeQuotationTypeList());
        items.add(new DictModel(OrderConsts.ORDER_QUOTATION_TYPE_OTHER, "其他报价"));
        return items;
    }

    /**
     * 参与报价人类型
     *
     * @return
     */
    public static List<DictModel> getPartakeQuotationTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_SYSTEM, "系统报价"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_STAFF, "后台报价"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_MASTER, "工程师报价"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_USER, "用户报价"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_SERVICEPROVIDER, "服务商报价"));
        return items;
    }

    /**
     * 取消人类型类型
     *
     * @return
     */
    public static List<DictModel> getCancelerTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_SYSTEM, "系统"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_STAFF, "员工"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_MASTER, "工程师"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_USER, "用户"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_FACTORY, "厂商"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_SERVICEPROVIDER, "服务商"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_BCUSTOMER, "大客户"));
        items.add(new DictModel(GlobalConsts.OPERATE_USER_TYPE_CHANNEL, "渠道"));
        return items;
    }

    /**
     * 工单跟单等级
     *
     * @return
     */
    public static List<DictModel> getOrderTrackLevelList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_1, "1级"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_2, "2级"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_3, "3级"));
        return items;
    }

    /**
     * 工单操作类型 (用于工单列表查询)
     *
     * @return
     */
    public static List<DictModel> getOrderOperateTypeStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INPUT, "录入"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CONFIRM, "确认"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE, "派单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_DISTRIBUTE_NEW, "派单（新）"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CHECKOUT, "收单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
//        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK, "跟单"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_TRACK_NEW, "跟单（新）"));
        return items;
    }

    /**
     * 话务工单操作类型 (用于工单列表查询)
     *
     * @return
     */
    public static List<DictModel> getCustomerOrderOperateTypeStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_INPUT, "录入"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_REPLY_VISIT, "回访"));
        items.add(new DictModel(OrderConsts.ORDER_OP_TYPE_CANCEL, "取消"));
        return items;
    }

    /**
     * 工单配件报销状态
     *
     * @return
     */
    public static List<DictModel> getOrderPartReimburseStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.PART_REIMBURSE_STATUS_NONE, "无需报销"));
        items.add(new DictModel(OrderConsts.PART_REIMBURSE_STATUS_DOING, "待报销"));
        items.add(new DictModel(OrderConsts.PART_REIMBURSE_STATUS_FAIL, "报销失败"));
        items.add(new DictModel(OrderConsts.PART_REIMBURSE_STATUS_SUCCESS, "报销成功"));
        items.add(new DictModel(OrderConsts.PART_REIMBURSE_STATUS_NO, "不予报销"));
        return items;
    }

    /**
     * 工单收费等级
     *
     * @return
     */
    public static List<DictModel> getAmountLevelList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_1, "<50"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_2, ">=50"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_3, ">=100"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_4, ">=200"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_5, ">=300"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_6, ">=400"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_7, ">=500"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_8, ">=800"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_9, ">=1000"));
        items.add(new DictModel(OrderConsts.ORDER_AMOUNT_LEVEL_10, ">=2000"));
        return items;
    }


    /**
     * 优惠类型
     *
     * @return
     */
    public static List<DictModel> getDiscountTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.ORDER_DISCOUNT_TYPE_DISCOUNT, "折扣"));
        //items.add(new DictModel(OrderConsts.ORDER_DISCOUNT_TYPE_FREE, "全免"));
        //items.add(new DictModel(OrderConsts.ORDER_DISCOUNT_TYPE_LIMIT_FREE, "立减"));
        items.add(new DictModel(OrderConsts.ORDER_DISCOUNT_TYPE_FULFILL_FREE, "满减"));
        return items;
    }

    /**
     * 是否
     *
     * @return
     */
    public static Map<String, Integer> getYesOrNoObj() {
        Map<String, Integer> yesOrNo = Maps.newLinkedHashMap();
        yesOrNo.put("yes", GlobalConsts.YES);
        yesOrNo.put("no", GlobalConsts.NO);
        return yesOrNo;
    }

    /**
     * 是否自动外呼
     * @return
     */
    public static List<DictModel> getCallAutomaticList() {
        List<DictModel> items = Lists.newArrayListWithExpectedSize(2);
        items.add(new DictModel(GlobalConsts.NO, "自动外呼"));
        items.add(new DictModel(GlobalConsts.YES, "手动外呼"));
        return items;
    }

    /**
     * 工单类型列表
     *
     * @return
     */
    public static List<DictModel> getOrderWorkTypeList() {
        List<DictModel> items = Lists.newArrayListWithExpectedSize(3);
        items.addAll(OrderConsts.getOrderTypeList());
        items.add(new DictModel(OrderConsts.ORDER_TYPE_REFUND, "退款单"));
        items.add(new DictModel(OrderConsts.ORDER_TYPE_COMPENSATE, "赔偿单"));
        return items;
    }

    //endregion

    /**
     * 获取配件报销状态名称
     *
     * @param partReimburseStatus
     * @return
     */
    public static String getOrderPartReimburseStatusName(Integer partReimburseStatus) {
        switch (partReimburseStatus) {
            case OrderConsts.PART_REIMBURSE_STATUS_NONE:
                return "无需报销";
            case OrderConsts.PART_REIMBURSE_STATUS_DOING:
                return "待报销";
            case OrderConsts.PART_REIMBURSE_STATUS_FAIL:
                return "报销失败";
            case OrderConsts.PART_REIMBURSE_STATUS_SUCCESS:
                return "报销成功";
            case OrderConsts.PART_REIMBURSE_STATUS_NO:
                return "不予报销";
            default:
                return "未知";
        }
    }


    /**
     * 查询工单优惠类型名称
     *
     * @param type 工单优惠类型
     * @return 工单优惠l类型名称
     */
    public static String getDiscountTypeName(Integer type) {

        switch (type) {
            case OrderConsts.ORDER_DISCOUNT_TYPE_FREE:
                return "全免";
            case OrderConsts.ORDER_DISCOUNT_TYPE_LIMIT_FREE:
                return "立减";
            case OrderConsts.ORDER_DISCOUNT_TYPE_DISCOUNT:
                return "折扣";
            case OrderConsts.ORDER_DISCOUNT_TYPE_FULFILL_FREE:
                return "满减";
            default:
                return "未知";
        }
    }

    /**
     * 查询工单优惠类型名称
     *
     * @param type 工单优惠类型
     * @return 工单优惠l类型名称
     */
    public static String getWarrantyTypeName(Integer type) {

        switch (type) {
            case OrderConsts.ORDER_WARRANTY_TYPE_RECEIPT:
                return "收据";
            case OrderConsts.ORDER_WARRANTY_TYPE_CARD:
                return "保单";
            default:
                return "未知";
        }
    }

    /**
     * 查询订单评价类型名称
     *
     * @param type 订单评价类型
     * @return 订单评价类型名称
     */
    public static String getCommentTypeName(Integer type) {

        switch (type) {
            case OrderConsts.COMMENT_TYPE_DEFAULT:
                return "系统评价";
            case OrderConsts.COMMENT_TYPE_USER:
                return "用户评价";
            case OrderConsts.COMMENT_TYPE_REPLYVISIT:
                return "回访评价";
            case OrderConsts.COMMENT_TYPE_THIRD:
                return "渠道评价";
            default:
                return "未知";
        }
    }

    /**
     * 审核状态
     *
     * @param type 审核状态
     * @return 审核状态名称
     */
    public static String getReviewStatusName(Integer type) {
        //  1.待审核 2. 审核成功 3. 审核失败
        switch (type) {
            case OrderConsts.REVIEW_STATUS_DOING:
                return "待审核";
            case OrderConsts.REVIEW_STATUS_SUCCESS:
                return "审核成功";
            case OrderConsts.REVIEW_STATUS_FAIL:
                return "审核失败";
            default:
                return "";
        }
    }

    /**
     * 合同模式 列表
     *
     * @return
     */
    public static List<DictModel> getBizModeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_MODE_PLAT, "平台代收合同"));
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_MODE_SELF, "维修服务合同"));
        return items;
    }

    /**
     * 合同模式
     *
     * @param bizMode
     * @return
     */
    public static String getBizModeName(Integer bizMode) {
        switch (bizMode) {
            case com.zmn.consts.GlobalConsts.BIZ_MODE_PLAT:
                return "平台代收合同";
            case com.zmn.consts.GlobalConsts.BIZ_MODE_SELF:
                return "维修服务合同";
            default:
                return "";
        }
    }


    /**
     * 来源类型
     * @param type
     * @return
     */
    public static String getSourceTypeName(Integer type) {
        switch (type) {
            case OrderConsts.ORDER_SOURCE_TYPE_FACTORY:
                return "厂商";
            case OrderConsts.ORDER_SOURCE_TYPE_BCUSTOMER:
                return "大客户";
            case OrderConsts.ORDER_SOURCE_TYPE_NORMAL:
                return "普通";
            case OrderConsts.ORDER_SOURCE_TYPE_MEMBER:
                return "会员";
            default:
                return "";
        }
    }

    /**
     * 获取会员评分列表
     *
     * @return
     */
    public static List<DictModel> getCommentScoreList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(1, "1星"));
        items.add(new DictModel(2, "2星"));
        items.add(new DictModel(3, "3星"));
        items.add(new DictModel(4, "4星"));
        items.add(new DictModel(5, "5星"));
        return items;
    }

    /**
     * 获取评价类型列表
     *
     * @return
     */
    public static List<DictModel> getCommentTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(OrderConsts.COMMENT_TYPE_DEFAULT, "系统评价"));
        items.add(new DictModel(OrderConsts.COMMENT_TYPE_USER, "用户评价"));
        items.add(new DictModel(OrderConsts.COMMENT_TYPE_REPLYVISIT, "回访评价"));
        items.add(new DictModel(OrderConsts.COMMENT_TYPE_THIRD, "渠道评价"));
        return items;
    }

    /**
     * 获取配件类型
     *
     * @return
     */
    public static List<DictModel> getPartTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(PART_TYPE_SOURCING_IN, "内采"));
        items.add(new DictModel(PART_TYPE_SOURCING_OUT, "外报"));
        items.add(new DictModel(PART_TYPE_DELIVER, "运杂"));
        return items;
    }

    /**
     * 获取审核状态
     *
     * @return
     */
    public static List<DictModel> getReviewStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(REVIEW_STATUS_DOING, "待审核"));
        items.add(new DictModel(REVIEW_STATUS_SUCCESS, "审核成功"));
        items.add(new DictModel(REVIEW_STATUS_FAIL, "审核失败"));
        return items;
    }

    /**
     * 获取厂商配件类型
     *
     * @return
     */
    public static List<DictModel> getFcPartTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(FC_PART_TYPE_FACTORY, "厂商配件"));
        items.add(new DictModel(FC_PART_TYPE_SELF, "自营配件"));
        return items;
    }
    /**
     * 获取厂商配件名称
     *
     * @return
     */
    public static String getFcPartTypeName(Integer fcPartType) {
        switch (fcPartType) {
            case OrderConsts.FC_PART_TYPE_FACTORY:
                return "厂商配件";
            case OrderConsts.FC_PART_TYPE_SELF:
                return "自营配件";
            default:
                return "";
        }
    }

    /**
     * 根据评分获取投诉等级
     *
     * @param score
     * @return
     */
    public static Integer getComplaintLevelByScore(Integer score) {
        // 1-2星评价的工单投诉， 对应三级投诉
        // 3星评价的，对应二级投诉
        if (Objects.equals(score, 1) || Objects.equals(score, 2)) {
            return 3;
        } else if (Objects.equals(score, 3)) {
            return 2;
        } else {
            return null;
        }
    }

    /**
     *
     * 获取前端用户需要显示的退款状态
     * @param refundReviewStatus
     * @param refundStatus
     * @return
     */
    public static Integer getUserRefundStatus(Boolean exitsRefundWork, Integer refundReviewStatus, Integer refundStatus) {
        // 存在退款单返回退款状态
        if (exitsRefundWork) {
            return refundStatus;
        }

        if (NumberUtil.isNullOrZero(refundReviewStatus)) {
            return null;
        }
        // 审核不通过，不显示退款状态
        if (Objects.equals(refundReviewStatus, REVIEW_STATUS_FAIL)) {
            return null;
        }
        // 审核中，退款中
        if (Objects.equals(refundReviewStatus, REVIEW_STATUS_DOING)) {
            return PayConsts.REFUND_STATUS_ING;
        }
        // 审核成功，按工单退款状态显示
        if (Objects.equals(refundReviewStatus, REVIEW_STATUS_SUCCESS)) {
            return refundStatus;
        } else {
            return null;// 例外
        }
    }

    /**
     * 类描述：是否支持线上退款
     * @author heciqi
     * @date 2019/8/14 21:02
     */
    public static boolean supportOnlineRefund(Integer payChannelId) {
        if (payChannelId == null) {
            return false;
        }
        return REFUND_PAY_CHANNEL_SUPPORT.contains(payChannelId);
    }


    /**
     * 根据天猫serviceCode获取name
     *
     * @author yule
     * @date 2020/04/24 15:55
     */
    public static String getTmallServiceCodeName(String serviceCode) {
        switch (serviceCode) {
            case "appliance_cleaning":
                return "家电清洗";
            case "air_conditioner_cleaning":
                return "空调清洗";
            case "water_purifier_installment_replacement":
                return "净水器/滤芯安装";
            case "new_retail_home_appliance_repair":
                return "家电安装维修";
            case "new_retail_air_condition_install":
                return "空调安装维修";
            default:
                return "其他";
        }
    }

    /**
     * 订单业务类型：保内/保外/工程
     *
     * @param bizType
     * @return
     */
    public static String getOrderBizType(int bizType) {
        switch (bizType) {
            case com.zmn.consts.GlobalConsts.BIZ_TYPE_C:
                return "保外";
            case com.zmn.consts.GlobalConsts.BIZ_TYPE_F:
                return "保内";
            case com.zmn.consts.GlobalConsts.BIZ_TYPE_B:
                return "工程";
            default:
                return "";
        }
    }

    /**
     * 订单保内/保外/工程
     *
     * @return
     */
    public static List<DictModel> getOrderBizTypeList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_TYPE_F, "F-保内业务"));
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_TYPE_C, "C-保外业务"));
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_TYPE_B, "B-工程业务"));
        return items;
    }

    /**
     * 翻译业务类型
     *
     * @param bizType
     * @return java.lang.String
     * @author tanbiao
     * @modifier
     * @since 2020/8/19
     */
    public static String translateBizType(String bizType, String split) {
        if (StringUtil.isBlank(bizType)) {
            return "";
        }
        if (StringUtil.isBlank(split)) {
            split = "/";
        }
        String splitStr = split;
        List<Integer> keepTypes = StringUtil.convertStrsToList(bizType);
        StringBuilder sb = new StringBuilder();
        keepTypes.forEach(e -> sb.append(OrderConsts.getOrderBizType(e)).append(splitStr));
        if (sb.length() < 1) {
            return "";
        }
        return sb.deleteCharAt(sb.length() - 1).toString();
    }

    /**
     * 照片审核状态
     *
     * @return
     */
    public static List<DictModel> getImageReviewStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(IMAGE_REVIEW_STATUS_WAITING, "待审核"));
        items.add(new DictModel(IMAGE_REVIEW_STATUS_SUCCESS, "审核合格"));
        items.add(new DictModel(IMAGE_REVIEW_STATUS_FAIL, "审核不合格"));
        items.add(new DictModel(IMAGE_REVIEW_STATUS_NO, "无需审核"));
        return items;
    }

    /**
     * 订单保内/保外
     *
     * @return
     */
    public static List<DictModel> getOrderBizTypeFAndCList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_TYPE_F, "保内"));
        items.add(new DictModel(com.zmn.consts.GlobalConsts.BIZ_TYPE_C, "保外"));
        return items;
    }

    /**
     * 登录入口
     *
     * @return
     */
    public final static List<Integer> LOGIN_ENTRANCE_LIST = Arrays.asList(
            GateTypeConsts.GATE_PLAT_CC

    );

    /**
     * 默认用户已登录的渠道
     *
     * @return
     */
    public final static List<Integer> LOGIN_CHANNEL_LIST = Arrays.asList(
            1511,// 平台渠道B01
            1322,// 平台渠道B04
            32794,// 平台渠道B02
            33979,// 58到家同城公寓
            1522,// 同城家电D
            33727,// 战略渠道F8
            33930,// 战略渠道F14
            33551,// 平台渠道C3
            10108,// 平台渠道C1
            1210,// 平台渠道C2
            32809,// 平台渠道C4
            32827,// 平台渠道E4
            10777,// 平台渠道E1
            10133,// 战略渠道F2
            31055,// 战略渠道F3
            1344// 平台渠道C15
    );

    /**
     * 计价器难度系数应用城市 500100,530100,310100,520100,320500
     * 重庆,昆明,上海,贵阳,苏州
     */
//    public final static Set<Integer> DIFFICULT_RETIO_CITY = Sets.newHashSet(
//            500100, // 重庆
//            530100, // 昆明
//            // 110100, // 北京
//            310100, // 上海
//            //330100,  // 杭州
//            520100,  // 贵阳
//            320500 // 苏州
//    );

    /**
     * 计价器难度系数服务分类 servCategId
     */
    public final static Set<Integer> DIFFICULT_RETIO_SERVICE_CATEGID = Sets.newHashSet(
            1002 // 维修
    );

    /**
     * 退款方式
     * @param refundType
     * @return
     */
    public final static String getRefundTypeName(Integer refundType){
        if (Objects.isNull(refundType)) {
            return "";
        }
        switch (refundType) {
            case ORDER_REFUND_TYPE_ONLINE:
                return "原路退款";
            case ORDER_REFUND_TYPE_OFFLINE:
                return "人工退款";
            default:
                return "未知";
        }
    }

    /**
     * 责任工程师类型
     *
     * @param liableType
     * @return
     */
    public final static String getLiableTypeTypeName(Integer liableType) {
        if (Objects.isNull(liableType)) {
            return "";
        }
        switch (liableType) {
            case ORDER_LIABLE_TYPE_SOURCE_MASTER:
                return "原工程师";
            case ORDER_LIABLE_TYPE_CURRENT_MASTER:
                return "当前工程师";
            default:
                return "未知";
        }
    }

    /**
     * 获取照片审核结果名称
     *
     * @param reviewStatus 审核状态
     * @return
     */
    public final static String getImageReviewStatusName(Integer reviewStatus) {
        if (Objects.isNull(reviewStatus)) {
            return "";
        }

        switch (reviewStatus) {
            case IMAGE_REVIEW_STATUS_WAITING:
                return "待审核";
            case IMAGE_REVIEW_STATUS_SUCCESS:
                return "合格";
            case IMAGE_REVIEW_STATUS_FAIL:
                return "不合格";
            case IMAGE_REVIEW_STATUS_NO:
                return "无需审核";
            default:
                return "未知";
        }
    }
}
